#pragma once
#include "DXAMLCommon.h"
#include "CReferenceCount.h"


class CDependencyObject;
class CBrush;
class CString;
class CFontFamily;

class TextFormatting :
	public CReferenceCount
{
public: 
	static HRESULT Create(CCoreServices * pCore, TextFormatting * * ppTextFormatting);
	static HRESULT CreateCopy(CCoreServices * pCore, const TextFormatting * pTemplate, TextFormatting * * ppTextFormatting);
	static HRESULT CreateDefault(CCoreServices * pCore, TextFormatting * * ppDefaultTextFormatting);
	XUINT32 IsOld();
	void SetIsUpToDate();
	HRESULT SetFontFamily(CDependencyObject * pdo, CFontFamily * pFontFamily);
	HRESULT SetForeground(CDependencyObject * pdo, CBrush * pForeground);
	void SetLanguageString(CString * pLanguageString);
	XUINT32 * m_pCoreInheritedPropGenerationCounter;
	XUINT32 m_cGenerationCounter;
	XFLOAT m_eFontSize;
	XINT32 m_nCharacterSpacing;
	CFontFamily * m_pFontFamily;
	CBrush * m_pForeground;
	enum FontWeight m_nFontWeight;
	enum FontStyle m_nFontStyle;
	enum FontStretch m_nFontStretch;
	enum TextDecorations m_nTextDecorations;
	CString * m_pLanguageString;
	enum eFlowDirection m_nFlowDirection;

private: 
	TextFormatting(CCoreServices *);
	TextFormatting();
	virtual ~TextFormatting();
};